﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace WFExtended.Twitter
{
    /// <summary>
    /// 
    /// </summary>
    [DataContract]
    public class DirectMessage
    {
        /// <summary>
        /// Gets or sets the created at.
        /// </summary>
        /// <value>
        /// The created at.
        /// </value>
        [DataMember(Name = "created_at")]
        public string CreatedAt { get; set; }

        /// <summary>
        /// Gets or sets the entities.
        /// </summary>
        /// <value>
        /// The entities.
        /// </value>
        [DataMember(Name = "entities")]
        public Entities Entities { get; set; }

        /// <summary>
        /// Gets or sets the ID.
        /// </summary>
        /// <value>
        /// The ID.
        /// </value>
        [DataMember(Name = "id")]
        public long ID { get; set; }

        /// <summary>
        /// Gets or sets the ID string.
        /// </summary>
        /// <value>
        /// The ID string.
        /// </value>
        [DataMember(Name = "id_str")]
        public string IDString { get; set; }

        /// <summary>
        /// Gets or sets the recipient.
        /// </summary>
        /// <value>
        /// The recipient.
        /// </value>
        [DataMember(Name = "recipient")]
        public User Recipient { get; set; }

        /// <summary>
        /// Gets or sets the recipient ID.
        /// </summary>
        /// <value>
        /// The recipient ID.
        /// </value>
        [DataMember(Name = "recipient_id")]
        public long RecipientID { get; set; }

        /// <summary>
        /// Gets or sets the name of the recipient screen.
        /// </summary>
        /// <value>
        /// The name of the recipient screen.
        /// </value>
        [DataMember(Name = "recipient_screen_name")]
        public string RecipientScreenName { get; set; }

        /// <summary>
        /// Gets or sets the sender.
        /// </summary>
        /// <value>
        /// The sender.
        /// </value>
        [DataMember(Name = "sender")]
        public User Sender { get; set; }

        /// <summary>
        /// Gets or sets the sender id.
        /// </summary>
        /// <value>
        /// The sender id.
        /// </value>
        [DataMember(Name = "sender_id")]
        public long SenderId { get; set; }

        /// <summary>
        /// Gets or sets the name of the sender screen.
        /// </summary>
        /// <value>
        /// The name of the sender screen.
        /// </value>
        [DataMember(Name = "sender_screen_name")]
        public string SenderScreenName { get; set; }

        /// <summary>
        /// Gets or sets the text.
        /// </summary>
        /// <value>
        /// The text.
        /// </value>
        [DataMember(Name = "text")]
        public string Text { get; set; }
    }
}
